import request from "@/utils/request";

// 查询菜单列表
export function listMenu(query: any) {
  return request({
    url: "/system/menu/list",
    method: "get",
    params: query
  });
}

// 查询菜单详细
export function getMenu(menuId: number) {
  return request({
    url: "/system/menu/" + menuId,
    method: "get"
  });
}

// 查询菜单下拉树结构
export function treeselect() {
  return request({
    url: "/system/menu/treeselect",
    method: "get"
  });
}

// 根据角色ID查询菜单下拉树结构
export function roleMenuTreeselect(roleId: number) {
  return request({
    url: "/system/menu/roleMenuTreeselect/" + roleId,
    method: "get"
  });
}

// 新增菜单
export function addMenu(data: any) {
  return request({
    url: "/system/menu",
    method: "post",
    data: data
  });
}

// 修改菜单
export function updateMenu(data: any) {
  return request({
    url: "/system/menu",
    method: "put",
    data: data
  });
}

// 删除菜单
export function delMenu(menuId: number) {
  return request({
    url: "/system/menu/" + menuId,
    method: "delete"
  });
}

// 定义 MenuItem 类型
export interface MenuEntity {
  id?: number;
  parentId: number;
  menuName?: string;
  icon?: string;
  menuType: "M" | "C" | "F"; // Assuming menuType could be "M", "C", or "F"
  orderNum?: number;
  isFrame: string; // Assuming "1" or "0" as values
  isCache: string; // Assuming "1" or "0" as values
  visible: string; // Assuming "0" or "1" as values
  status: string; // Assuming "0" or "1" as values
  location: string;
  langKey?: string;
  children?: MenuEntity[];
}
